#include<iostream>
using namespace std;
#include<cstring>

/*析构函数
1.功能：撤销对象时，回收对象所占内存。
2.写法：
    a.没有返回类型，且不写void；
    b.函数名：~类名；
    c.没有参数。
3.调用时机：撤销对象时，系统自动调用。
4.默认析构：如果没有自定义的析构函数，系统会提供一个默认的析构函数 ---> stu(){}
            如果有自定义的析构函数，系统提供的析构无效。
5.析构函数不能重载，一个类只有一个析构。
6.注意：(1).先构造的后析构；
		(2).撤销几次对象，就会调用几次析构函数；
        (3).当主函数执行完毕（程序走完return 0）后，才会执行析构函数!!!
*/

/*class stu {
	char name[20];
	int age;
public:
	stu(char* n, int a)//构造函数：创建对象时，为对象分配存储空间，同时为对象的数据成员进行初始化。
	{
		strcpy(name, n);
		age = a;
		cout<<"调用构造:"<<name<<endl;
	}
	~stu()//析构函数：撤销对象时，回收对象所占内存。
	{
		cout<<"调用析构:"<<name<<endl;
	}
};

int main()
{
	stu s1("张三", 18);
	stu s2("李四", 20);
	return 0;
}*/

